package com.hxzy.shop.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 优惠券表
 */
@Data
@ApiModel("优惠券表")
public class Coupon implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 优惠券id
     */
    @TableId
    @ApiModelProperty("优惠券id")
    private Long id;

    /**
     * 优惠券类型 1满减券  2 包邮券
     */
    @ApiModelProperty("优惠券类型 1满减券  2 包邮券")
    private Integer couponType;

    /**
     * 优惠券名称
     */
    @ApiModelProperty("优惠券名称")
    private String couponName;

    /**
     * 库存
     */
    @ApiModelProperty("库存")
    private Integer stock;

    /**
     * 剩余库存
     */
    @ApiModelProperty("剩余库存")
    private Integer surplusStock;

    /**
     * 开始有效期
     */
    @ApiModelProperty("开始有效期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date startTime;

    /**
     * 结束有效期
     */
    @ApiModelProperty("结束有效期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date endTime;

    /**
     * 领取人群状态 1 全体人员 2新会员
     */
    @ApiModelProperty("领取人群状态 1 全体人员 2新会员")
    private Integer statusOfRecipients;

    /**
     * 会员等级id
     */
    @ApiModelProperty("会员等级id")
    private Long memberCardId;

    /**
     * 每人领取状态 1 不限制 2 限制
     */
    @ApiModelProperty("每人领取状态 1 不限制 2 限制")
    private Integer receivingStatusEachPerson;

    /**
     * 每人限领张数
     */
    @ApiModelProperty("每人限领张数")
    private Integer limitedNumberTickets;

    /**
     * 公开性  true公开 false 不公开
     */
    @ApiModelProperty("公开性  true公开 false 不公开")
    private Boolean publicity;

    /**
     * 可使用商品状态 true全部商品 false部分商品
     */
    @ApiModelProperty("可使用商品状态 true全部商品 false部分商品")
    private Boolean availableCommodityStatus;

    /**
     * 门槛金额
     */
    @ApiModelProperty("门槛金额")
    private BigDecimal limitedAmount;

    /**
     * 优惠金额
     */
    @ApiModelProperty("优惠金额")
    private BigDecimal preferentialAmount;

    /**
     * 是否分享劵  true 是 false 不是
     */
    @ApiModelProperty("是否分享劵  true 是 false 不是")
    private Boolean shareCoupon;

    /**
     * 状态  true启用 false停用
     */
    @ApiModelProperty("状态  true启用 false停用")
    private Boolean state;

    /**
     * 领取说明
     */
    @ApiModelProperty("领取说明")
    private String receivingInstructions;

    /**
     * 优惠说明
     */
    @ApiModelProperty("优惠说明")
    private String offerDescription;

    /**
     * 使用须知
     */
    @ApiModelProperty("使用须知")
    private String instructionsForUse;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 是否激活
     */
    @ApiModelProperty("是否激活")
    private Boolean activate;

    /**
     * 商户id
     */
    @ApiModelProperty("商户id")
    private Long merchantId;

    /**
     * 是否开启会员权益0未开启，1已开启
     */
    @ApiModelProperty(value = "是否开启会员权益0未开启，1已开启")
    private Integer isRights;

    @ApiModelProperty("是否删除  true删除  false 未删除")
    private Boolean isDel;

    @ApiModelProperty(value = "领取人群 1全部人群 2新用户")
    private Integer recipients;

    @ApiModelProperty(value = "1.优惠卷中心 2.会员赠送 3.积分商城 4.合约用药 5瓜分券")
    private Integer pointCoupon;

    @ApiModelProperty(value = "有效期类型 1.限时有效 2.领取后X天有效")
    private Integer validityType;

    @ApiModelProperty(value = "有效期 天")
    private Integer validity;

    /**
     * 多少人瓜分
     */
    @ApiModelProperty(value = "多少人瓜分")
    private Integer carveUpNum;
    /**
     * 瓜分方式(1好友均分 2拼手气)
     */
    @ApiModelProperty(value = "瓜分方式(1好友均分 2拼手气)")
    private Integer carveUpType;
    /**
     * 使用门槛(1无门槛 2有门槛)
     */
    @ApiModelProperty(value = "使用门槛(1无门槛 2有门槛)")
    private Integer useThreshold;
    /**
     * 活动主题设置（1默认主题 2自定义背景图）
     */
    @ApiModelProperty(value = "活动主题设置（1默认主题 2自定义背景图）")
    private Integer themeSettings;
    /**
     * 背景图地址
     */
    @ApiModelProperty(value = "背景图地址")
    private String backgroundImg;

    /**
     * 瓜分周期（天）
     */
    @ApiModelProperty(value = "瓜分周期（天）")
    private Integer carveUpDay;
    /**
     * 瓜分周期（时）
     */
    @ApiModelProperty(value = "瓜分周期（时）")
    private Integer carveUpHour;
    /**
     * 瓜分周期（分）
     */
    @ApiModelProperty(value = "瓜分周期（分）")
    private Integer carveUpMinute;
}
